Skip to content

Avoid redundant host array copy during NDArray conversion - #223

Merged
ejmeitz merged 1 commit into
developfrom
codex/remove-redundant-host-collect
Oct 2, 2026
Merged

ejmeitz merged 1 commit into
developfrom
codex/remove-redundant-host-collect

Conversation

@ejmeitz

@ejmeitz ejmeitz commented Oct 2, 2026

Copy link
Copy Markdown
Member

This causes a lot of overheads in benchmarks which use huge arrays.

@ejmeitz
ejmeitz merged commit 79ac935 into develop Oct 2, 2026
11 checks passed
@ejmeitz
ejmeitz deleted the codex/remove-redundant-host-collect branch October 2, 2026 19:55
ejmeitz added a commit that referenced this pull request Oct 14, 2026
v0.3.0 (#182)

- Added random number generation for all relevant types (rand, randn, randexp, etc.), mirroring cuPyNumeric (#176).
- Made NDArray a subtype of AbstractArray and added LinearAlgebra.Diagonal support (#165).
- Added argmin, argmax, var, std, and mean (#178).
- Added more unary and binary operators (e.g. <<) and == / != as 0-d Bool reductions (#177, #187).
- Added more linear-algebra operators (e.g. eigen) and vector linear-algebra ops (#183, #202).
- Added cuSolverMp support (#192).
- Added the new @accelerate macro with explicit Julia scoping semantics (escape analysis) and multi-line broadcast fusion, plus fused compound broadcasts and compile-time argument buffers (#174, #200, #226).
- Added FFT/iFFT/bFFT, in-place and batched variants (#185, #204, #220).
- Added sort, sort!, sortperm, searchsortedfirst, and searchsortedlast (#181).
- Added tensor contractions and a TensorOperations.jl @tensor extension (#186, #188, #190).
- Added mapreduce, NDArray map!, host copyto!, and muladd support (#196, #204, #206).
- Added the NDScalar type with opt-in scalar unwrapping via allowfetch (#203, #230).
- Added a Krylov.jl extension (#205).
- Added AoS (native Legate) and SoA (experimental StructArrays.jl extension) support (#207).
- Added undef initialization, zero-backed for users (#213, #232).
- Added in-place and 1-d slice assignment (#210, #215).
- Added a Dynamic Mode Decomposition example and benchmark (#184).
- Fixed Int32 overflow for arrays with more than 2^31 elements.
- Improved startup and conversion cost by loading CUDACore before Legate, owning Julia array conversions, and avoiding redundant host copies (#193, #209, #223).
- Revamped the benchmark suite with fewer hyperparameters and removed the in-package Benchmarking module (#191, #195).
- Improved CI with new GPU JLL triggers, regression CI via [regression-ci <branch>], opt-in container builds, a Julia 1.13 matrix, and tagging CI (#194, #197, #201, #216, #218, #221, #222).
- Updated cuPyNumeric compat and documentation for v0.3.0 (#217, #231).
- Additional CI adjustments, benchmark compat bumps, JLL wrapper updates, and docs fixes landed as direct commits without PR numbers.

---------

Co-authored-by: krasow <krasow@u.northwestern.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant